package com.example.mgs.Service;

import com.example.mgs.Mgs.FileMergeTask;
import org.springframework.web.multipart.MultipartFile;

import java.io.FileNotFoundException;

public interface FileService {

    // 保存分片到临时存储
    void saveChunk(String taskId, Integer chunkIndex, byte[] data) throws FileNotFoundException;

    // 合并所有分片
    byte[] mergeChunks(String taskId, Integer totalChunks);

    // 删除临时分片文件
    void deleteChunk(String taskId);

    // 获取临时文件路径
    String getTempFilePath(String taskId, Integer chunkIndex);

    // 获取文件扩展名
    String getFileExtension(String fileName);

    // 获取任务信息
    FileMergeTask getTaskFromRedis(String taskId);

    // 更新任务信息
    void updateTaskInRedis(FileMergeTask task);

    // 删除任务信息
    void deleteTaskFromRedis(String taskId);

    //保存任务信息
    void save(FileMergeTask task) throws Exception;

    // 获取已上传的分片数量
    Integer getUploadedChunkCount(String taskId);
}
